#include <Arduino.h>
#include <Wire.h>
#include <INA226.h>

INA226 INA(0x40); // I2C地址

// 电压电流采样
void VA()
{
    float V = INA.getBusVoltage();       // VBUS电压V
    float mA = INA.getCurrent_mA();      // 采样电阻电流mA
    float mW = INA.getPower_mW();        // 功率
    float mV = INA.getShuntVoltage_mV(); // 采样电阻分压
    Serial.print(V);
    Serial.print(" V  \t");
    Serial.print(mA);
    Serial.print(" mA \t");
    Serial.print(mW);
    Serial.print(" mW \t");
    Serial.print(mV);
    Serial.print(" mV \t");
    Serial.println();
}

// 电压电流采样2
void VA2()
{
    float V = INA.getBusVoltage();       // VBUS电压V
    float mV = INA.getShuntVoltage_mV(); // 采样电阻分压
    float A = mV / 10;                   // 采样电阻分压/采样电阻值 = 电流
    Serial.print(V);
    Serial.print(" V  \t");
    Serial.print(mV);
    Serial.print(" mV \t");
    Serial.print(A, 4);
    Serial.print(" A  \t");
    Serial.println();
}

void VA3()
{
    float V = INA.getBusVoltage();
    float I = INA.getCurrent();
    float P = INA.getPower();
    Serial.print(V);
    Serial.print(" V  \t");
    Serial.print(I);
    Serial.print(" A  \t");
    Serial.print(P);
    Serial.print(" w  \t");
    Serial.println();
}

void setup()
{
    Serial.begin(115200);
    Wire.begin();
    INA.setMaxCurrentShunt(8, 0.01); // 最大电流A,分流电阻值R
}

void loop()
{
    VA3();
    delay(1000);
}